/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager;

import br.com.deployment.servico.EmolumentoServico;
import br.com.deployment.servico.TipoSeloServico;
import br.com.deployment.util.PedidoSelo;
import java.io.Serializable;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author roniere
 */
@ManagedBean
@ViewScoped
public class ManagerPedido implements Serializable{
    
    @EJB
    EmolumentoServico emolumentoServico;
    @EJB
    TipoSeloServico tipoSeloServico;
    
    
    
    private PedidoSelo pedidoSelo;
    private List<PedidoSelo> pedidoSelos;
    

    @PostConstruct
    public void init(){
        System.err.println("INIT");
        pedidoSelo = new PedidoSelo();
        pedidoSelos = new ArrayList<PedidoSelo>();
    }
    public void reinit(){
        System.err.println("REINIT");
        pedidoSelo = new PedidoSelo();
    }
    
    public void addList(){
        pedidoSelo.setQtdSelos(pedidoSelo.getQtdFolhas() * pedidoSelo.getQtdSelosFolha());
        pedidoSelo.setTipoSelo(tipoSeloServico.find(pedidoSelo.getTipoSelo().getId()));
        pedidoSelo.setEmolumento(emolumentoServico.findEmolAtivo());
        pedidoSelos.add(pedidoSelo);
        System.err.println(pedidoSelo);
        reinit();
    }
    
    public String somaPedido() throws ParseException{
        double sum = 0D;
        for (PedidoSelo pedidoSelo1 : pedidoSelos) {
            sum += (pedidoSelo1.getQtdSelos() * pedidoSelo1.getEmolumento().getValorSelo());
        }
        
        DecimalFormat df =  new DecimalFormat("#,##0.00");
        String x = String.valueOf(df.format(sum));
        System.err.println(x);
//        sum = Double.parseDouble(x);
        return x;
    }
    public Double valorPedido(int x, float y){
        Double sum = 0D;
        sum += (x * y);
        return sum;
    }
    
     public void editList() {
        FacesContext context = FacesContext.getCurrentInstance();
        Map map = context.getExternalContext().getRequestParameterMap();
        String x = (String) map.get("paramPedido");
        int ds = Integer.parseInt(x);
        pedidoSelo = pedidoSelos.get(ds);
        pedidoSelos.remove(ds);
    }
    
     public void removeList(PedidoSelo ps) {
        pedidoSelos.remove(ps);
    }
    
    public PedidoSelo getPedidoSelo() {
        return pedidoSelo;
    }

    public void setPedidoSelo(PedidoSelo pedidoSelo) {
        this.pedidoSelo = pedidoSelo;
    }

    public List<PedidoSelo> getPedidoSelos() {
        return pedidoSelos;
    }

    public void setPedidoSelos(List<PedidoSelo> pedidoSelos) {
        this.pedidoSelos = pedidoSelos;
    }
    
    
}
